package co.yixiang.modules.system.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.Builder;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.validation.constraints.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.io.Serializable;

/**
* @author zf
* @date 2021-07-10
*/
@Data
@Accessors(chain = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("vx_user")
public class VxUser implements Serializable {

    @TableId
    private Integer id;


    /** 用户名称 */
    private String username;


    /** 用户真实姓名 */
    private String account;


    /** 用户手机号 */
    private String phone;


    /** 上级id */
    private Integer superId;


    /** 用户open_id */
    private String openId;


    /** 邀请码 */
    private String shareCode;


    /** 开户行 */
    private String bank;


    /** 银行卡号 */
    private String bankNumber;

    /** 0普通用户 1 高级合伙人 2 合伙人 */
    private Integer ident;


    /** 账户余额 */
    private BigDecimal wallet;


    /** 创建时间 */
    @TableField(fill= FieldFill.INSERT)
    private LocalDateTime createTime;


    public void copy(VxUser source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }
}
